package Acwing.基础算法;

import java.util.Scanner;

/**
 * @Title: dualPointers
 * @Author 贾金博
 * @Package Acwing.基础算法
 * @Date 2025/4/9 下午6:11
 * @description: 双指针
 */
public class dualPointers {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] a = new int[n + 10];
        // 用一个数组去统计每个数出现的次数 为了校验
        int[] num = new int[100010]; // 开到最大

        for(int i = 1; i <= n; i ++ ) {
            a[i] = sc.nextInt();
        }
        int ret = 0;

        // 双指针
        for(int i = 1, j = 1; j <= n; j ++ ) { // 这个 j 是表示的是 让 j 每次都去走
            num[a[j]]++;
            while(num[a[j]] > 1 && i < j) {
                // 下面的这个要去注意前后顺序
                num[a[i]] -- ;
                i ++ ; // 后面的这个要去往前走了

            }
            ret = Math.max(ret, j - i + 1);
        }
        System.out.println(ret);
    }
}
